/*
 * BGFGSegmentor.h
 *
 *  Created on: Dec 1, 2013
 *      Author: thanhkm
 */

#ifndef BGFGSEGMENTOR_H_
#define BGFGSEGMENTOR_H_

#include <iostream>
#include <opencv2/opencv.hpp>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/nonfree/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/nonfree/nonfree.hpp"

#include "People.h"

using namespace cv;
using namespace std;

vector<Rect> makeBoxImage(Mat imgmsk,Mat img);
float dist(Point2f a, Point2f b);
// Get midpoint of two points
Point2i getMidPoint(Point2i a, Point2i b);

//Matching object with SUFT feature
bool matchObject(Mat img1, Mat img2);
//get a region of image
Mat getImageRegion(Mat img, Point2i a, Point2i b);

// Merge contours
// funsionner les contours qui sont proches et assez petits
// return list of rectangle around objet
vector<Rect> mergeContours(Mat imgmsk,Mat &img);

//-----------Objet detect--------
// Il faut considerer de creer un class
// ID(int)
// Taille (deux point: top left(tl) et bottom right (br)
// Centroide
// Couleur
// Image (Mat) for detect and distingue with others
// si le centroide move bcp il faut valider
// si le taille change bcp il faut calculer
// la couleur reste constant pour un objet
// Image(Mat) utilise quand on voir que l'objet disparu,
// ou on veut distinguer cet objet avec les autres.


#endif /* BGFGSEGMENTOR_H_ */
